This invention relates generally to graphical user interfaces and more particularly to providing colors for objects in a graphical user interface.
The available display screen area on a computer monitor has become increasingly inadequate in terms of the presentation of the variety of information and resources available to the user. In this regard, conventional computing systems have attempted to provide various solutions to address the problem of limited display screen area.
For example, windowing systems divide a screen into multiple tiled or overlapping display areas, resembling sheets of paper on a desktop, with one window in the foreground and others in the background. These windows remind the user that other information and control options are readily available to be brought to the foreground at the click of a mouse on an unobscured point in the window containing the desired material. However, such systems typically allow only a limited number of windows to be open and only the foreground window to be operable at any one time. In addition, information within a window that does not fit on the window""s display screen area must be scrolled using an input device in order to access chosen information.
Another attempt to increase displayed information and control options is the use of hierarchical menuing through a sequence of display screens, offered to the user as a cascade of windows or a single designated screen area overwritten for each submenu. Typically, hierarchical menus rely upon information organized into decision trees. Abbreviating menuing options causes the menus to be less user friendly as menus do not always suggest sub-menu options. Further, cascaded windows introduce screen clutter and prevent the user from seeing all of the cascaded information simultaneously.
Zooming graphical user interfaces allow navigation into or out of the display screen, and can thus allow zooming graphical objects to be viewed from various perspectives at various levels of granularity. This provides the ability to view large numbers of objects at low resolution (e.g., by zooming away from them), or smaller numbers of objects at higher resolution (e.g., by zooming towards them). Thus, the user can review available resources from a broad perspective, and then focus with greater detail on particular resources.
In conventional zooming graphical user interfaces, each graphical object might have a foreground color and a background color, with additional colors potentially being added to object subclasses as necessary (e.g., fill color). In these schemes, colors are not encapsulated in a consistent manner. Also, no attempt is made to reduce the memory usage of all the color instantiations. Finally, there is no easy way to change the colors of all instances of a particular class (e.g., in order to customize appearance).
Conventional zooming graphical user interfaces are typically static hard-coded systems, which are inflexible in various aspects, suffering from limited and inefficient capabilities while lacking portability and modularity. What is needed is a graphical user interface with architecture having improved flexibility, and more efficient functionality. Further needed is a scheme for associating colors with graphical objects having increased design flexibility and reduced consumption of computing resources.
These and other features and advantages are provided in accordance with the present invention, which is preferably implemented with an object oriented zooming graphical user interface. The zooming graphical objects in a zooming space have attributes defined by a hierarchy of class levels. For example, an instance of a zooming object may belong to a class having at least one super class, wherein the class defines some of its characteristics, and the super class defines other characteristics. According to one aspect of the present invention, color scheme objects provide the color attributes for the graphical objects residing in the zooming space. The color scheme objects mirror the hierarchy used to define graphical objects. Specifically, class and super class level color scheme objects could correspond to the class and super class objects defining a zooming graphical object. The color scheme objects would provide the default color scheme for the given zooming object, and any other zooming graphical objects instantiated at the same class level. A class inherits the default colors of its super class(es) unless initialized or specified otherwise. Additionally, specific colors could be provided at the instance level to supercede the default color scheme. This color scheme provides increased flexibility, wherein the color scheme for a class of zooming graphical objects can be changed by merely changing the associated color scheme objects (at the class, super class, or any level that defines the class of objects).
According to another aspect of the present invention, the zooming objects and the associated color scheme objects can be simple, or complex. A simple zooming graphical object is characterized by a single operating state and a single geometric segment. For example, a rounded rectangle may be a simple zooming graphical object. A complex zooming object comprises multiple geometric segments and/or is characterized by multiple operating states. A round button comprising a rounded rectangle portion and a text portion is an example of a complex zooming object. Also, a round button (or even a simple zooming object) could have different characteristics (e.g., colors) for the rollover and selected states.
The color scheme object can implement the color description scheme of the relevant platform to define colors. For example, for Java based embodiments, a simple color scheme object contains a set of Java Colorsxe2x80x94defining the amount of red, green and blue a color contains according to the sRGB color description systemxe2x80x94for each of the colorable components of a simple zooming graphical object. For a simple zooming object, the colorable components might be outline color and fill color. A complex color scheme object contains a set of simple color schemes (as described above) for each geometric segment in each operating state defined by a complex object. Both types of color scheme objects are derived from a base color scheme module that defines methods and constants which are implemented by every color scheme, which facilitates run-time discovery of the color requirements for particular zooming objects.